There is an ever increasing demand for wireless communications. Wireless subscribers desire to have access to information at any time and at any place. One of the fastest growing markets for providing wireless services is known as “telematics” and entails delivering a wide spectrum of information via wireless links to vehicle-based subscribers. The information can originate from multiple sources, such as the Internet and other public, private, and/or government computer-based networks; wireless telecommunications such as cellular, Personal Communication Service (PCS), satellite, land-mobile, and the like; terrestrial and satellite direct broadcasts including traditional AM/FM bands, broadband, television, video, geolocation and navigation via a global position system (GPS), and the like; concierge services providing roadside assistance, emergency calling, remote-door unlocking, accident reporting, travel conditions, vehicle security, stolen vehicle recovery, remote vehicle diagnostics, and the like; advertising services identifying names and locations of businesses such as gas stations, restaurants, hotels, stores, and offices, and the like; tourist services such as points of interest, directions, hours of access, and the like; and many other sources that can provide information of any type. Many of the above services are not universally available, but rather they are transient in both the time and geoposition domains.
Information can be communicated to telematics devices over relatively long wireless links, such as from a satellite or terrestrial node, or from relatively short wireless or wired links, such as from in-vehicle equipment or from hand-held devices like PDAs, portable computers, cellular phones, and the like.
The services provided by telematics systems are not restricted to vehicle-based subscribers, and they can also be provided to subscribers at home, at work, or elsewhere. With so much mobility, the equipment located in the subscriber's vehicle, or the equipment carried by or otherwise serving a subscriber, needs a way to connect with the plethora of services that are potentially available to it. The equipment needs a way to discover, identify, select, and invoke services that are of interest to it, as well as to disconnect from services that are no longer of interest to it.
It is known in the prior art to utilize certain commercially available software to locate services. However, systems utilizing such software are fixed, not mobile. Mobile systems require connection software that is specifically designed to fulfill requirements that distinguish mobile systems from fixed systems. For example, mobile systems often have limited battery power, limited bandwidth, limited memory, and only stay in any given place for a limited time.
Mobile systems also may have rigorous security requirements in order to protect the identity and location of mobile subscribers, as well as to insure that the mobile equipment, including software, is not involuntarily altered or corrupted, for example, by downloading uncertified software that could replace, infect, or otherwise have an adverse impact upon the software residing in the system. Known systems that dynamically provide access to services typically download software code to the client platform and execute the code on the client platform. Not only does this introduce potentially dangerous security issues, but the downloaded code can overwhelm the mobile system's limited memory capability.
It is known in the art for applications residing on a client platform to individually locate any desired service. For example, this can be done using the Jini™ connection technology commercially available from Sun Microsystems, Inc., Palo Alto, Calif. However, it can be an undesirable drain upon the applications, their platform, and the bandwidth available to the platform, for each application to independently interact with a desired service. Further, the need to interact differently with local or remote services requires additional complexity in the client platform.
Accordingly, there is a significant need for methods and apparatus that are more conserving of application and platform resources, particularly for mobile platforms.
There is also a significant need for methods and apparatus that make services appear the same to applications and platform resources, irrespective of where the services reside.
There is further a significant need for methods and apparatus that insulate applications from the complexities of interacting with remote servers to connect with remote services.